import java.io.*;

//042. 统计三角形单词个数
//        定义三角形数序列中第 n 项：tn=n(n+1)/2
//        这样得到前十个三角形数是：1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
//        把一个单词中每个字母在字母表中的位置值加起来（'A'的位置值为 1，'Z'的位置值为 26），
//        可以将一个单词转换为一个数。
//        例如：单词 SKY 的值为 19 + 11 + 25 = 55 = t10 （其中'S'的位置值为 19，'K'的位置值为 11，
//        'Y'的位置值为 25）
//        如果单词的值是一个三角形数，则称该单词为三角形单词，例如 SKY 就是一个三角形单词。
//        p042_words.txt 是一个 16K 的文本文件，包含将近两千个常用英语单词。在这个文件中，一
//        共有多少个三角形词？
//        答案：162


public class Week042 {
    static long pow(long a, int b) {
        long ret = 1;
        while (b != 0) {
            if ((b & 1) == 1) ret *= a;
            b >>= 1;
            a *= a;
        }
        return ret;
    }

    static long powMod(long a, int b, final long mod) {
        long ret = 1;
        while (b != 0) {
            if ((b & 1) == 1) ret = ret * a % mod;
            b >>= 1;
            a = a * a % mod;
        }
        return ret;
    }

    static boolean check(int x) {
        x <<= 1;
        int sq = (int) Math.sqrt(x);
        return sq * (sq + 1) == x;
    }

    static void run() throws Exception {
        BufferedReader br = new BufferedReader(new FileReader("p042_words.txt"));
        String line = br.readLine();
        br.close();
        line = line.replace("\"", "");
        String[] words = line.split(",");
        int ans = 0, sum, i, len;
        for (String word : words) {
            sum = 0;
            for (i = 0, len = word.length(); i < len; ++i) {
                sum += word.charAt(i) - 'A' + 1;
            }
            if (check(sum)) ++ans;
        }
        System.out.println(ans);
    }

    public static void main(String[] args) throws Exception {
        long startTime = System.nanoTime();
        run();
        System.out.println("\n程序运行时间：" + (System.nanoTime() - startTime) + "ns.");
    }
}
